package com.hotel.mvc.controller;


import hbm.Cliente;
import hbm.ClienteDAO;
import hbm.Habitacion;
import hbm.HabitacionDAO;
import hbm.Hotel;
import hbm.HotelDAO;
import hbm.Tipohabitacion;
import hbm.TipohabitacionDAO;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.Session;
import org.hibernate.Transaction;

public class HabitacionController extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		String opcion = request.getParameter("opcion");
		
		if(opcion!=null && opcion.equals("mantenimiento")){
			response.sendRedirect("./jsp/mantenimientoHabitacion.jsp");
		}
		
		if(opcion!=null && opcion.equals("crear")){
			response.sendRedirect("./jsp/crearTipoHabitacion.jsp");
		}
		
		if(opcion!=null && opcion.equals("ingresar")){
			String submit = request.getParameter("submit");
			if(submit==null){
				List<Hotel> listaHoteles = (ArrayList<Hotel>) new HotelDAO().findAll();
				request.getSession().setAttribute("listaHoteles", listaHoteles);
				
				List<Tipohabitacion> listaTipos = (ArrayList<Tipohabitacion>) new TipohabitacionDAO().findAll();
				request.getSession().setAttribute("listaTipos", listaTipos);
				
				response.sendRedirect("./jsp/ingresoHabitacion.jsp");
				
				} 	
			}
			
		if(opcion!=null && opcion.equals("habitacion")){
			String submit = request.getParameter("submit");
			if(submit!=null && submit.equals("Guardar")){
				Integer tipoHabitacion = Integer.parseInt(request.getParameter("tipoHabitacion"));
				Integer numeroHabitacion = Integer.parseInt(request.getParameter("txtnumero"));
				Integer idHotel = Integer.parseInt(request.getParameter("idHotel"));
				
				Habitacion habitacion = new Habitacion(tipoHabitacion,idHotel,numeroHabitacion);
				
				Session session = new HabitacionDAO().getSession();
				
				Transaction tx = session.beginTransaction();
				session.save(habitacion);
				tx.commit();
				session.close();
				response.sendRedirect("./jsp/mantenimientoHabitacion.jsp");
			}
		}
			
		if(opcion!=null && opcion.equals("tipo")){
			String boton = request.getParameter("boton");
			if(boton!=null && boton.equals("Guardar")){
				String descripcion = request.getParameter("txtdescripcion");
				Integer precio = Integer.parseInt(request.getParameter("txtprecio"));
				Tipohabitacion tipoHabitacion = new Tipohabitacion(descripcion,precio);
				
				Session session = new TipohabitacionDAO().getSession();
				
				Transaction tx = session.beginTransaction();
				session.save(tipoHabitacion);
				tx.commit();
				session.close();
				response.sendRedirect("./jsp/mantenimientoHabitacion.jsp");
			}
		}
		
		if(opcion!=null && opcion.equals("consulta")){
			
			List<Habitacion> listaHabitaciones = (ArrayList<Habitacion>) new HabitacionDAO().findAll();
			request.getSession().setAttribute("listaHabitaciones",listaHabitaciones);
			response.sendRedirect("./jsp/consultaHabitacion.jsp");
		}
	}

}
